1. Field of the Invention
The present invention relates to network congestion control. More specifically, the present invention relates to methods and apparatus for detecting congestion, generating instructions for alleviating congestion, distributing the instructions, and controlling congestion.
2. Description of Related Art
Many conventional network protocols use packet dropping to alleviate congestion at a network node. In one example, a network node in an IP-based network receives input data from multiple sources at a rate exceeding its output bandwidth. In conventional implementations, selected packets are dropped to allow transmission of remaining packets within the allocated output bandwidth. Packets can be dropped randomly or by using various selection criteria. The dropped packets are ultimately retransmitted under the control of a higher-level protocol such as TCP.
In networks such as Fibre Channel networks, packet dropping is generally not allowed. Instead, networks such as Fibre Channel networks implement end-to-end and buffer-to-buffer flow control mechanisms. End-to-end and buffer-to-buffer flow control mechanisms do not allow a first network node to transmit to a second network node until a second network node is ready to receive a frame. The second network node typically indicates that it is ready to receive a frame by granting credits to the first network node. When frames are transmitted, credits are used. When no credits remain, the first network node can no longer transmit to the second network node. However, the buffer-to-buffer flow control mechanism can significantly contribute to network congestion, as the mechanism blocks all traffic directed to a particular link subject to temporary over-subscription conditions. Such blocking can quickly propagate upstream to other links in a Fibre Channel network topology. Some of these links might serve as corridors for paths that do not include the originally congested link. Hence, congestion at one link of one network path can sometimes cause blocking over a much wider portion of a Fibre Channel topology.
It is therefore desirable to provide methods and apparatus for improving congestion control at networks nodes in a network such as a Fibre Channel network with respect to some or all of the performance limitations noted above.